package DAOS.sistema;

import ConectividadDatos.CargadorDatos;
import ConectividadDatos.EnlaceDB;
import DTOS.sistema.GeneralesUsuarioDTO;
import DTOS.sistema.UsuarioSistemaDTO;
import Herramientas.Herramientas;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author AlanGR
 */
public class UsuariosDAO {

    private EnlaceDB enlace;
    private CargadorDatos cargador;

    public UsuariosDAO() {
        enlace = new EnlaceDB();
        cargador = new CargadorDatos();
    }

    /**
     * ALAN GONZALEZ DEVUELVE UN USUARIO SISTEMA POR ATRIBUTOS DE NOMBRE Y CLAVE
     * MD5
     *
     * @param us
     * @return
     */
    public UsuarioSistemaDTO usuarioSistema(UsuarioSistemaDTO us) {
        UsuarioSistemaDTO user = new UsuarioSistemaDTO();

        String sql
                = "SELECT * FROM usuarios_sistema WHERE `usuarios_sistema`.`clave_usuario`='" + us.getClaveUsuario()
                + "' AND `usuarios_sistema`.`usuario_nombre`='" + us.getUsuarioNombre() + "'  AND `usuarios_sistema`.`estado` > 0";

        enlace.openDatabase();
        ResultSet rst = enlace.executeQuery(sql);
        try {
            if (rst.next()) {
                user = cargador.usuarioSistemaDTO(rst);
            } else {
                user = null;
            }
        } catch (SQLException ex) {
            Logger.getLogger(UsuariosDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            rst.close();
        } catch (SQLException ex) {
            Logger.getLogger(UsuariosDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        enlace.closeDatabase();

        return user;
    }



    /**
     * Alan Gonzalez Todos los usuarios
     * @return 
     */
    public Vector usuarios() {
        Vector usuarios = new Vector();
        String sql = "SELECT * FROM usuarios_sistema";

        enlace.openDatabase();
        ResultSet rs = enlace.executeQuery(sql);
        
        try {
            while (rs.next()) {
                UsuarioSistemaDTO usuario = cargador.usuarioSistemaDTO(rs);
                usuarios.add(usuario);
            }
        } catch (SQLException ex) {
            Logger.getLogger(UsuariosDAO.class.getName()).log(Level.SEVERE, null, ex);
        }

        try {
            rs.close();
        } catch (SQLException ex) {
            Logger.getLogger(UsuariosDAO.class.getName()).log(Level.SEVERE, null, ex);
        }

        enlace.closeDatabase();
        return usuarios;
    }
    /**
     * Alan Gonzalez un usuario por id
     * @return 
     */
    public UsuarioSistemaDTO usuariosXID(int id) {
        UsuarioSistemaDTO us = new UsuarioSistemaDTO();
        String sql = "SELECT * FROM usuarios_sistema where id ="+id;
       
        enlace.openDatabase();
        ResultSet rs = enlace.executeQuery(sql);
        UsuarioSistemaDTO usuarioSistemaDTO = new UsuarioSistemaDTO();
        try {
            if (rs.next()) {
                 usuarioSistemaDTO = cargador.usuarioSistemaDTO(rs);
            }else{
            usuarioSistemaDTO = new UsuarioSistemaDTO();
            }
        } catch (SQLException ex) {
            Logger.getLogger(UsuariosDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            rs.close();
        } catch (SQLException ex) {
            Logger.getLogger(UsuariosDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
     
        enlace.closeDatabase();
        return usuarioSistemaDTO;
    }
    
   


}
